#ifndef  QQ_UTILITY
#define QQ_UTILITY

#include <qcryptographichash.h>
#include <qstring.h>
#include <qstringlist.h>
#include <qfile.h>
#include <qdir.h>
#include <stdio.h>

#include <openssl/aes.h>
#include <openssl/rand.h>

#ifdef Q_OS_WIN
#include <objbase.h>  
#elif Q_OS_UNIX
#include <uuid/uuid.h> 
#endif

QString handle_generate_device_guid();

QString generate_unique_id(const QStringList& list);

QString save_file_to_disk(const QByteArray& data, const QString& path = QString(), const QString& name = QString());

void handle_encrypt_file(const QString& src_file, const QByteArray& key);

void handle_encrypt_file(const QString& src_file, const QString& dest_file, const QByteArray& key);

void handle_decrypt_file(const QString& src_file, const QByteArray& key);

void handle_decrypt_file(const QString& src_file, const QString& dest_file, const QByteArray& key);


#endif // ! QQ_UTILITY

